package com.chengh.nami.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chengh.nami.common.request.PageQuery;
import com.chengh.nami.common.response.PageData;
import com.chengh.nami.system.domain.dto.DictTypeDto;
import com.chengh.nami.system.pojo.SysDictType;

import java.util.List;

/**
 * 字典类型接口
 *
 * @author chengh
 */
public interface ISysDictTypeService extends IService<SysDictType> {

    /**
     * 加载字典缓存数据
     */
    void loadingDictCache();

    /**
     * 根据条件查询全部的信息,此条件与分页查询条件一致
     * @param dictTypeDto 查询条件
     * @return 列表信息
     */
    List<SysDictType> getList(DictTypeDto dictTypeDto);

    /**
     * 根据条件查询字典类型列表
     *
     * @param dictTypeDto 查询参数
     * @param pageQuery   分页条件
     * @return 列表信息
     */
    PageData<SysDictType> getListType(DictTypeDto dictTypeDto, PageQuery pageQuery);

    /**
     * 更新字典信息,并且重新写入redis
     *
     * @param dictType 字典信息
     * @return 是否成功
     */
    Boolean edit(SysDictType dictType);

    /**
     * 添加字典类型信息
     *
     * @param sysDictType 字典类型信息
     * @return 是否成功
     */
    Boolean addDict(SysDictType sysDictType);

    /**
     * 根据字典类型ID的数组删除字典信息
     *
     * @param ids 字典ID数组
     */
    void delDict(Long[] ids);

    /**
     * 刷新字典缓存
     */
    void refreshCache();
}
